<?php
/**
 * 用户管理模型
 * 
 * @author  Lee<a605333742@gmail.com>
 * @time    2016-07-25
 */
namespace Model;
use Think\Model;

class UserModel extends Model{
    //一次性获得全部验证错误
    protected $patchValidate    =   true;
    
    //实现表单项目验证
    //通过重写父类属性_validate实现表单验证
    protected $_validate        =   array(
        
        //验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]),
        //验证用户名,require必须填写项目
        array('nickName','require','用户名必须填写'),
        array('nickName','','用户名已经存在！',0,'unique',1), // 在新增的时候验证name字段是否唯一
        array('companyName','require','公司名必须填写'),
        array('password','require','密码必须填写'),
       //可以为同一个项目设置多个验证
        array('repassword','require','确认密码必须填写'),
       //与密码的值得是一致的
        array('repassword','password','与密码的信息必须一致',0,'confirm'),       
        
    );
    
    
    /*
     * 修改用户密码
     * 
     * @return bool
     */
    public function changePwd($where){
        $id         =$where['id'];
        $userInfo   =$this->find($id);
        if($userInfo){
            if($userInfo['password']==$where['oldPassword']){
                if($this->save($where)){
                    return TRUE;
                }else{
                    return FALSE;
                }
            }else{
                return FALSE;
            }
        }else{
            return FALSE;
        }
    }
    
    /*
     * 新增、修改用户
     * 
     * @return bool
     */
    public function edit($where){
        $g='';
        if($where['id']){
            //id存在为修改
            if($this->save($where)){
                $g="修改";
            }else{
                return FALSE;
            }
        }else{
            //否则为新增
            //$where['add_time']  =time();
            if($this->add($where)){
                $g="新增";
            }else{
                return FALSE;
            }
        }
        $data=array(
            'user_id'   =>session("authId"),
            'content'   =>$g.'了名为 '.$where['nickName'].' 的用户',
            'add_time'  =>time()
        );
        if(M("Log")->add($data)){
            return TRUE;
        }else{
            return FALSE;
        }
    }
    
    /*
     * 删除指定用户,禁用，启用用户
     * 
     * @return bool
     */
    public function edits($where){
        if(is_array($where['id'])){
            $where['id']=array("in",implode(',',$where['id']));
        }
        if($this->save($where)){
            $data=array(
                "user_id"   =>session("authId"),
                'content'   =>"编辑了id为 ".$where['id']." 的用户",
                "add_time"  =>time()
            );
            if(M("Log")->add($data)){
                return TRUE;
            }else{
                return FALSE;
            }
        }
    } 
    
    /*
     * 修改个人质料
     * 
     * @return #
     */
    public function myedit($where){        
        if($this->save($where)){
            $data=array(
                "user_id"   =>session("authId"),
                'content'   =>"修改了自己的资料",
                "add_time"  =>time()
            );
            if(M("Log")->add($data)){
                return TRUE;
            }else{
                return FALSE;
            }
        }
    }
    
    /*
     * 修改公司名称
     * 
     * @return bool
     */
    public function editMycompany($where){       
        if($this->save($where)){
            $data=array(
                "user_id"   =>session("authId"),
                'content'   =>"修改了自己的公司名",
                "add_time"  =>time()
            );
            if(M("Log")->add($data)){
                return TRUE;
            }else{
                return FALSE;
            }
        }else{
            return FALSE;
        }
    }
    
    /*
     * 注册新用户
     * 
     * @return #
     */
    public function reg($where){
        if($this->add($where)){
             $data=array(
                "user_id"   =>0,
                'content'   =>$where['nickName'].'注册成功',
                "add_time"  =>time()
            );
            if(M("Log")->add($data)){
                return TRUE;
            }else{
                return FALSE;
            }
        }else{
            return FALSE;
        }
    }
    
    /*
     * 上传营业执照
     * 
     * @return #
     */
    public function upyyzz($where){
        if($this->save($where)){
            return TRUE;
        }else{
            return FALSE;
        }
    }
}